Many applications are implemented with multiple tiers. Each application tier may be executing on a different system whether that system is physical or virtual. In one common example, a web-based application, which clients typically access over the Internet, may be implemented in three tiers: a web server tier, an application server tier, and a database tier. Each of the three tiers perform a specific function to support the provision of the web-based application to the clients. Thus, while applications in each of the three tiers are applications in and of themselves, they work together to form the web-based application.
Especially in situations where many applications are executing in a multi-tiered application environment, it can be difficult to enforce network policies without knowing which individual application processes belong to which multi-tiered applications. For example, two application components may be exchanging communications with one another. If those two applications are part of the same multi-tiered application, then those communications may be proper. However, if those same two applications are not part of the same multi-tiered application, then those communications may not be proper. As such, the determination of whether the communications are proper cannot be made unless the multi-tiered application of each individual application process is first identified.